您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

大容量数据库卡的事务管理方法、大容量数据库卡及系统

  • 申请号:CN201110364299.5 申请公布号: CN102375892B
  • 申请日: 2011-11-16 申请公布日: 2014-07-02
  • 申请(专利权)人: 专利代理机构: 北京中博世达专利商标代理有限公司
  • 分类号:G06F17/30

专利介绍

本发明实施例公开了一种大容量数据库卡的事务管理方法、大容量数据库卡及系统,涉及智能卡技术领域,解决了现有技术中由于事务管理过程中出现频繁的读写操作,对内存和外存分别进行备份,占用大量的内存与外存资源的问题。所述大容量数据库卡事务管理方法包括:在进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作,如果所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存,否则继续执行所述一系列操作中未执行的操作。本发明适用于内外存资源有限的智能卡。
1.一种大容量数据库卡的事务管理方法,其特征在于,包括:开启事务;其中,所述开启事务包括:内部开启事务和外部开启事务,当没有进行所述外部开启事务时,则进行所述内部开启事务;内存读取外存中的相关数据,将所述相关数据进行整理以形成内存数据,所述内存数据包括数据库句柄资源、表句柄资源、索引句柄资源以及数据库句柄资源、表句柄资源、索引句柄资源之间的关联信息;对内存中保存的内存数据进行事务开启与事务关闭之间的一系列操作;在进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作;如果所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存,否则继续执行所述一系列操作中未执行的操作;所述一系列操作,仅进行一次读写操作。
2.根据权利要求1所述的方法,其特征在于,在所述进行事务中一系列操作之前,包括:在达到事件开启触发条件时,控制事务状态由关闭状态变为开启状态,如果所述事务状态为开启状态,进行所述进行事务中一系列操作的步骤。
3.根据权利要求1所述的方法,其特征在于,所述完成所述更新动作后将内存中的内存数据回写到外存,包括:将所述内存数据回写到所述外存并整理为外存数据,所述外存数据包括数据库信息、数据表信息和索引信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,还包括:在进行事务中一系列操作时,如果出现操作错误,进行回滚操作,控制事务状态恢复到关闭状态。
5.一种用于大容量数据库卡的事务管理装置,其特征在于,所述装置包括:事务管理模块,用于开启事务;其中,所述开启事务包括:内部开启事务和外部开启事务,当没有进行所述外部开启事务时,则进行所述内部开启事务;内存管理模块,包括:内存管理单元,用于读取外存中的相关数据,将所述相关数据进行整理以形成内存数据,所述内存数据包括数据库句柄资源、表句柄资源、索引句柄资源以及数据库句柄资源、表句柄资源、索引句柄资源之间的关联信息;基本操作模块,包括:操作单元,用于对内存中保存的内存数据进行事务开启与事务关闭之间的一系列操作;所述事务管理模块,还用于在所述基本操作模块进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作;所述基本操作模块,还包括:回写单元,用于如果所述事务管理模块判断得到所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存;所述一系列操作,仅进行一次读写操作。
6.根据权利要求5所述的用于大容量数据库卡的事务管理装置,其特征在于,所述事务管理模块,包括:状态管理单元,用于在达到事件开启触发条件时,控制事务状态由关闭状态变为开启状态,如果所述事务状态为开启状态,运行所述操作单元。
7.根据权利要求5所述的用于大容量数据库卡的事务管理装置,其特征在于,所述装置还包括外存管理模块;所述外存管理模块包括:外存管理单元,用于在回写单元将内存中的内存数据回写到外存后,对所述内存数据进行管理形成外存数据,所述外存数据包括数据库信息、数据表信息和索引信息。
8.根据权利要求6所述的用于大容量数据库卡的事务管理装置,其特征在于,所述事务管理模块,还包括:回滚单元,用于在所述操作单元进行事务中一系列操作时,如果出现操作错误,进行回滚操作;所述状态管理单元,还用于在所述回滚单元进行回滚操作后控制事务状态恢复到关闭状态。
9.一种用于大容量数据库卡的事务管理系统,其特征在于,包括:事务管理模块、内存管理模块以及基本操作模块,其中,所述事务管理模块运行于终端中,所述内存管理模块以及所述基本操作模块运行于用于大容量数据库卡的事务装置中;所述事务管理模块,用于开启事务;其中,所述开启事务包括:内部开启事务和外部开启事务,当没有进行所述外部开启事务时,则进行所述内部开启事务;所述内存管理模块,包括:内存管理单元,用于读取外存中的相关数据,将所述相关数据进行整理以形成内存数据,所述内存数据包括数据库句柄资源、表句柄资源、索引句柄资源以及数据库句柄资源、表句柄资源、索引句柄资源之间的关联信息;所述基本操作模块,包括:操作单元,用于对内存中保存的内存数据进行事务开启与事务关闭之间的一系列操作;所述事务管理模块,还用于在所述基本操作模块进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作;所述基本操作模块,还包括:回写单元,用于如果所述事务管理模块判断得到所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存;所述一系列操作,仅进行一次读写操作。
10.根据权利要求9所述的用于大容量数据库卡的事务管理系统,其特征在于,所述事务管理模块,包括:状态管理单元,用于在达到事件开启触发条件时,控制事务状态由关闭状态变为开启状态,如果所述事务状态为开启状态,运行所述操作单元。
11.根据权利要求9所述的用于大容量数据库卡的事务管理系统,其特征在于,所述用于大容量数据库卡的事务管理装置,还包括外存管理模块;所述外存管理模块包括:外存管理单元,用于在回写单元将内存中的内存数据回写到外存后,对所述内存数据进行管理形成外存数据,所述外存数据包括数据库信息、数据表信息和索引信息。
12.根据权利要求10所述的用于大容量数据库卡的事务管理系统,其特征在于,所述事务管理模块,还包括:回滚单元,用于在所述操作单元进行事务中一系列操作时,如果出现操作错误,进行回滚操作;所述状态管理单元,还用于在所述回滚单元进行回滚操作后控制事务状态恢复到关闭状态。技术领域
本发明涉及智能卡技术领域,尤其涉及一种大容量数据库卡的事务管理方法、大容量数据库卡及系统。
背景技术
数据库的事务管理是数据库管理系统(DBMS,Databasexa0Managementxa0System)对数据库运行管理保证数据库系统正常运行的重要功能。事务,是指访问并可能更新数据存储系统中各项数据项的一个程序执行单元。事务由事务开启和事务关闭之间执行的全部操作组成,具有原子性,确保除非事务性单元内的所有操作都成功完成,否则不会永久更新数据存储系统中的数据项。目前,对事务的管理为:将事务状态由关闭状态变为开启状态,内存读取外存的数据,对内存读取到的数据进行一系列操作,在一系列操作中一般会包括多个更新动作,每次更新动作完成后,需要向外存回写内存的数据,并再次从外存中读取数据用于未完成的操作直到事务状态由开启状态变为关闭状态。在实现本发明实施例的过程中,发明人发现,至少存在以下技术问题:事务管理的过程中,若一系列操作出现多次更新动作时会出现频繁的磁盘读写操作,对内存和外存分别进行备份,则需要丰富的内存和外存资源,而目前智能卡的内存与外存资源有限,造成这种事务管理无法应用在智能卡环境中。
发明内容
本发明的实施例提供一种大容量数据库卡的事务管理方法、大容量数据库卡及系统,能够解决现有技术中由于事务管理过程中出现频繁的读写操作,对内存和外存分别进行备份,占用大量的内存与外存资源的问题。为达到上述目的,本发明的实施例采用如下技术方案:一种大容量数据库卡的事务管理方法,包括:在进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作;如果所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存,否则继续执行所述一系列操作中未执行的操作。一种大容量数据库卡,包括数据库模块,内存管理模块、外存管理模块、基本操作模块,还包括:事务管理模块,用于在基本操作模块进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作;所述基本操作模块,包括:回写单元,用于如果所述事务管理模块判断得到所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存。一种大容量数据库卡的系统,包括终端及大容量数据库卡,所述大容量数据库卡包括数据库模块、基本操作模块、内存管理模块、外存管理模块,所述终端,包括:事务管理模块,用于在基本操作模块进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作;所述基本操作模块,包括:回写单元,用于如果所述事务管理模块判断得到所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存。本发明实施例提供的大容量数据库卡的事务管理方法、大容量数据库卡及系统,在进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作,如果所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存,否则继续执行所述一系列操作中未执行的操作。本发明实施例进行的所述一系列操作,仅进行了一次读写操作,与现有技术相比,本发明实施例能够解决现有技术中由于事务管理过程中出现频繁的读写操作,对内存和外存分别进行备份,占用大量的内存与外存资源的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一提供的方法流程图;图2为本发明实施例二提供的方法流程图;图3为本发明实施例二提供的方法的事务状态转换示意图;图4为本发明实施例二提供的方法的事务状态拓展示意图;图5为本发明实施例三提供的大容量数据库卡的结构示意图一;图6为本发明实施例三提供的大容量数据库卡的结构示意图二;图7为本发明实施例四提供的大容量数据库卡的系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。实施例一本实施例提供一种大容量数据库卡的事务管理方法,如图1所示,所述方法包括:步骤101、在进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作。步骤102、如果所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存,否则继续执行所述一系列操作中未执行的操作。下面举一个具体例子对本实施例进行说明,所述例子仅是本实施例方法的一个具体实施,其他能够体现本实施例方法的例子此处不一一列举。例如,所述进行事务中一系列操作可以为修改表格中的数值,所述表格中的数值包括第一数值、第二数值及第三数值,在进行完第一数值的修改后,将修改后的第一数值暂时保存在内存中,判断得到第二数值及第三数值需要修改,分别对第二数值及第三数值进行修改并暂时保存在内存中,此时判断得到没有数值需要修改,则将修改后的第一数值、修改后的第二数值以及修改后的第三数值从内存中回写到外存中,这样在整个过程中只进行了一次回写操作。本发明实施例提供的大容量数据库卡的事务管理方法,在进行事务中一系列操作时,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作,如果所述更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存,否则继续执行所述一系列操作中未执行的操作。本发明实施例进行的所述一系列操作,仅进行了一次读写操作,与现有技术相比,本发明实施例能够解决现有技术中由于事务管理过程中出现频繁的读写操作,对内存和外存分别进行备份,占用大量的内存与外存资源的问题。实施例二本实施例提供一种大容量数据库卡的事务管理方法,如图2所示,所述方法包括:步骤201、开启事务。在本实施例中,所述开启事务包括:内部开启事务和外部开启事务。在进行数据库更新动作时,当外部没有开启事务,则系统进行内部开启事务操作,保证数据库的安全和稳定。步骤202、内存读取外存中的相关数据,将所述相关数据进行整理以形成内存数据。在本实施例中,所述内存数据包括数据库句柄资源、表句柄资源、索引句柄资源以及数据库句柄资源、表句柄资源、索引句柄资源之间的关联信息。这些资源信息是以链表的形式储存在内存里的,这样可以灵活的对信息进行增减。步骤203、对数据进行更新动作。步骤204、判断更新动作是否为所述一系列操作的最后操作。步骤205、将所述内存数据整理为外存数据回写到所述外存。这样,对内存数据和外存数据进行整理,由于内存数据与外存数据有相关性,将所述内存数据整理为外存数据回写到所述外存,保证了数据库的内存数据和外存数据的有效性和一致性。在本实施例中,所述外存数据包括数据库信息、数据表信息和索引信息。数据库信息为一种长期存储在计算机内、有组织的、有共享的、同一管理的数据集合,数据库信息中包括:数据库类型、数据库名以及数据库配置信息;数据表信息为数据库信息的重要组成部分,是数据库保存信息的基础,数据表信息包括:表名、表字段个数以及表字段名;索引信息为对数据库表信息中一列或多列的值进行排序的一种结构,使用索引信息可快速访问数据库表信息中的信息,索引信息包括:索引所在表的表名、索引的字段号以及索引名。在外存中数据库的相关的资源信息用一个数据库配置管理文件保存数据库管理系统的数据库、表、索引以及相关信息。配置文件信息以TLV(Tag,Length,Value)的形式用不定长记录的方式保存数据库,表,索引这三类信息。其中,Tag表示根据数据库中资源的种类确定tag的长度,使用不同的tag代表的不同的资源类型,例如:若数据库中包括四种资源,则tag长度为2,分别用00,01,10,11即可表示四种不同的资源类型;Length表示Value的长度;Value用于保存数据库,数据表,索引等基本资源信息。该配置文件储存信息随着数据库的更新不断更新。步骤206、关闭事务。为了使本领域技术人员更好的理解本发明实施例描述的技术方案,如图3所示,现就本系统事务的状态转换进行详细说明。本系统将事务状态拓展为502事务关闭状态,501内部开启事务状态,503外部开启事务状态,这三种状态分别用0x00,0x01,0x02三个标识表示。在进行数据库更新动作时,当外部没有开启事务,则系统进行内部开启事务操作,保证数据库的安全和稳定。事务的状态转换通过函数的触发来完成,本实施例中触发事务基本状态发生改变的触发函数包括6个:内部开启事务函数、内部提交事务函数、内部回滚事务函数、外部开启事务函数、外部提交事务函数、外部回滚事务函数。通过这6个事务状态触发函数实现三种事务状态的改变。其中事务开启函数是一个事务单元的起始标志,事务提交函数是事务单元正常结束的标志,事务回滚函数是事务单元中操作错误或意外出错时的结束标志。假设当前数据库中有table1表,准备向table1表中插入2条记录。在外部开启事务情况下:事务的起始状态为502事务关闭状态(0x00),若向表中插入2条记录的过程为相互关联的操作,为保证数据库由一个状态转换到另一个正确的状态,将往表中插入2条记录的过程作为一个事务的操作单元处理。此时,首先进行外部开启事务,进而事务的状态由502事务关闭状态(0x00)转换为503外部开启事务状态(0x02),在事务处于503外部开启事务状态(0x02)下,向table1表中先后插入第一条和第二条记录。若插入两条记录成功完成,通过事务提交完成一个事务单元的操作,进而事务的状态由503外部开启事务状态(0x02)转换为502事务关闭状态(0x00),数据库转换到一个新的正确状态。若插入记录的过程中发生操作失败,通过事务回滚完成一个事务单元的操作,进而事务的状态恢复到502事务关闭状态(0x00),数据库恢复到开启事务状态前的正确状态。在内部开启事务情况下:事务的起始状态为502事务关闭状态(0x00),若外部没有开启事务,为了防止在对数据库操作中出现断电等意外出错情况,数据库管理系统在内部隐性的开启事务,对数据库进行安全性保证,并达到对数据库的灵活控制。在向表中插入一条记录前,事务管理系统进行内部开启事务操作,将事务的状态由502事务关闭状态(0x00)转换为501内部开启事务状态(0x01),当事务处于501内部开启事务状态(0x01)下,系统调用插入函数完成插入记录操作,若插入记录成功完成,事务管理系统自动进行内部事务提交操作,将事务状态由501内部开启事务状态(0x01)转换成502事务关闭状态(0x00);若插入记录失败,事务管理系统自动进行内部事务回滚操作,将事务状态转换为502事务关闭状态(0x00)。进行第二次插入操作时,也通过同样的过程完成。事务状态拓展如图4所示,通过在上述事务状态的基础上灵活的拓展事务的状态,增加对应的触发函数,可以灵活的控制事务操作和其他数据库基本操作的约束。例如通过拓展状态转换图的方法实现在事务中不进行特定操作的约束,或在某几个练习的操作过程中不进行事务的操作。例如,系统中的查询操作由三个独立的接口配合使用完成,通过调用对应的触发函数可以达到504未开启事务数据库查询、505未开启事务访问控制查询、507外部开启事务数据库查询、506外部开启事务访问控制查询功能。本发明实施例提供的大容量数据库卡的事务管理方法,开启事务后,内存读取外存中的相关数据,将所述相关数据进行整理以形成内存数据。对数据进行更新动作,判断更新动作是否为所述一系列操作的最后操作,若所述更新动作是所述一系列操作的最后操作,则将所述内存数据整理为外存数据回写到所述外存,若所述更新动作不是所述一系列操作的最后操作,则返回继续对数据进行更新动作。本发明实施例进行的所述一系列操作,仅进行了一次读写操作,与现有技术相比,本发明实施例能够解决现有技术中由于事务管理过程中出现频繁的读写操作,对内存和外存分别进行备份,占用大量的内存与外存资源的问题。本发明实施例提供的大容量数据库卡的事务管理方法可以独立应用在大容量数据库卡以及应用在存在终端及大容量数据库卡的大容量数据库卡系统中,以下正对这两种方案进行具体说明。实施例三本实施例提供一种大容量数据库卡,如图5所示,所述大容量数据库卡包括:数据库模块31、用于大容量数据库卡的数据存储。内存管理模块32、用于在内存中保存和管理数据库的资源信息。外存管理模块33、用于在外存中保存和管理数据库的资源信息。基本操作模块34、用于对数据库存储的数据进行一系列操作。事务管理模块35,用于在基本操作模块34进行事务中一系列操作中,如果出现更新动作,判断更新动作是否为所述一系列操作的最后操作。所述基本操作模块34、包括:回写单元341,用于如果所述事务管理模块35判断得到更新动作为所述一系列操作的最后操作,完成所述更新动作后将内存中的内存数据回写到外存。进一步的,如图6所示,所述内存管理模块32包括:内存管理单元321,用于读取外存中的相关数据,将所述相关数据进行整理以形成内存数据,所述内存数据包括数据库句柄资源、表句柄资源、索引句柄资源以及数据库句柄资源、表句柄资源、索引句柄资源之间的关联信息。所述基本操作单元34,还包括:操作单元342,用于对内存中保存的内存数据进行事务开启与事务关闭之间的一系列操作。进一步的,如图6所示,所述外存管理模块33包括:外存管理单元331,用于在回写单元341将内存中的内存数据回写到外存后,对所述内存数据进行管理形成外存数据,所述外存数据包括数据库信息、数据表信息和索引信息。进一步的,如图6所示,所述事务管理模块35,包括:回滚单元351,用于在所述操作单元342进行事务中一系列操作时,如果出现操作错误,进行回滚操作。状态管理单元352,用于在达到事件开启触发条件时,控制事务状态由关闭状态变为开启状态,如果所述事务状态为开启状态,运行所述操作单元342。另外,还用于在所述回滚单元351进行回滚操作后控制事务状态恢复到关闭状态。本发明实施例提供的大容量数据库卡,状态管理单元开启事务后,在内存管理单元中内存读取外存中的相关数据,将所述相关数据进行整理以形成内存数据。操作单元对数据进行更新动作,事务管理模块判断更新动作是否为所述一系列操作的最后操作。若所述更新动作是所述一系列操作的最后操作,则回写单元将所述内存数据整理为外存数据回写到所述外存;若所述更新动作不是所述一系列操作的最后操作,则返回操作单元继续对数据进行更新动作。本发明实施例进行的所述一系列操作,仅进行了一次读写操作,与现有技术相比,本发明实施例能够解决现有技术中由于事务管理过程中出现频繁的读写操作,对内存和外存分别进行备份,占用大量的内存与外存资源的问题。实施例四本发明实施例提供的一种大容量数据库卡的系统,如图7所示,包括终端41和大容量数据库卡42,所述大容量数据库卡42包括:数据库模块421、此模块包含内容及功能与图6中数据库模块31相同,此处不再赘述。内存管理模块422、此模块包含内容及功能与图6中内存管理模块32相同,此处不再赘述。外存管理模块423、此模块包含内容及功能与图6中外存管理模块33相同,此处不再赘述。基本操作模块424、此模块包含内容及功能与图6中基本操作模块34相同,此处不再赘述。所述终端41包括:事务管理模块411、此模块包含内容及功能与图6中事务管理模块35相同,此处不再赘述。本发明实施例提供的大容量数据库卡的系统,事务管理模块判断基本操作模块的更新动作是否为所述一系列操作的最后操作,若所述更新动作是所述一系列操作的最后操作,则基本操作模块将所述内存数据整理为外存数据回写到所述外存,若所述更新动作不是所述一系列操作的最后操作,则继续对数据进行更新动作。本发明实施例进行的所述一系列操作,仅进行了一次读写操作,与现有技术相比,本发明实施例能够解决现有技术中由于事务管理过程中出现频繁的读写操作,对内存和外存分别进行备份,占用大量的内存与外存资源的问题。本发明实施例提供的大容量数据库卡及系统可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的大容量数据库卡的事务管理方法、大容量数据库卡及系统可以适用于内外存资源有限的智能卡,但不仅限于此。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Onlyxa0Memory,ROM)或随机存储记忆体(Randomxa0Accessxa0Memory,RAM)等。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。